/* TotalDcmListerAboutView.h -- Header file for class TotalDcmListerAboutView
*
* TotalDcmLister - A lister plugin for Total Commander for listing DICOM File content.
*
* Copyright (C) 2015 Captain Stark
*
* This software may be modified and distributed under the terms of the MIT license.
* See the COPYRIGHT file at the top-level directory of this distribution for details.
*/

#pragma once

#include "resource.h"
#include "afxcmn.h"
#include "afxwin.h"

#include <string>

using namespace std;

/// <summary>
/// Defines a simple About dialog.
/// </summary>
class TotalDcmListerAboutView : public CDialogEx
{
   DECLARE_DYNAMIC(TotalDcmListerAboutView)

public:
   /// <summary>
   /// Initializes a new instance of the <see cref="TotalDcmListerAboutView"/> class.
   /// </summary>
   /// <param name="pParent">The p parent.</param>
   TotalDcmListerAboutView(CWnd* pParent = NULL);   // standard constructor

   /// <summary>
   /// Finalizes an instance of the <see cref="TotalDcmListerAboutView"/> class.
   /// </summary>
   virtual ~TotalDcmListerAboutView();

   /// <summary>
   /// Called in response to the WM_INITDIALOG message. Initializes all controls.
   /// </summary>
   /// <returns>
   /// True, when input focus is set to one of the controls in the dialog box. False otherwise.
   /// </returns>
   virtual BOOL OnInitDialog();

// Dialog Data
   enum { IDD = IDD_ABOUTVIEW };

protected:
   /// <summary>
   /// Does the dialog data exchange.
   /// </summary>
   /// <param name="pDX">A pointer to a CDataExchange object.</param>
   virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
   
   /// <summary>
   /// Called when the homepage hyperlink was clicked.
   /// </summary>
   /// <param name="pNMHDR">
   /// A pointer to an NMHDR structure that contains the notification code and additional information.
   /// </param>
   /// <param name="pResult">The result code.</param>
   afx_msg void OnClickLinkToHomepage(NMHDR *pNMHDR, LRESULT *pResult);

   DECLARE_MESSAGE_MAP()

private:
   CFont m_fontCaption;
   CStatic m_ctrlCaption;
   CStatic m_ctrlParagraph1;
   CStatic m_ctrlParagraph2;

   /// <summary>
   /// Gets the version information from the library assembly.
   /// </summary>
   /// <returns>
   /// The version string.
   /// </returns>
   wstring GetVersionInfo();
};
